﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;

namespace Guarouba.Pages
{
    public partial class _004_FormacoesAcademicas_Detalhes : PaginaBase
    {
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                MontarTela();

                if (Classes.Tools.PegarQueryString("ID") != null)
                {
                    CarregarDetalhesDaFormacaoAcademica();
                }

                if (Classes.Tools.PegarQueryString("PM") == "Insert")
                {
                    ((DefaultERPMaster)Master).ShowPopUp(
                            "Formação Inserida",
                            "Os dados da Formação Acadêmica foram gravadas com sucesso.",
                            3);
                }
            }
        }

        void MontarTela()
        {
            if (Classes.Tools.PegarQueryString("ID") != null)
            {
                btnExcluir.Visible = true;
            }
        }

        void CarregarDetalhesDaFormacaoAcademica()
        {
            BLL.FormacaoAcademica fac = new BLL.FormacaoAcademica();
            BLL.FormacaoAcademica.entFormacoes form =
                new BLL.FormacaoAcademica.entFormacoes();

            form =
                fac.CarregaDetalhesDaFormacao(Classes.Tools.PegarQueryString("ID"));

            txtCod.Text = form.IdFormacao;
            txtFormacao.Text = form.Formacao;
        }

        protected void btExcluir_Click(object sender, EventArgs e)
        {
            try
            {
                BLL.Exclusao exc = new BLL.Exclusao();
                exc.ExcluirFormacaoAcademica(Classes.Tools.PegarQueryString("ID"));
                Response.Redirect(String.Format("003-FormacoesAcademicas.aspx?PM={0}", Classes.Tools.Encript("Delete")));
            }
            catch (Exception ex)
            {
                ((DefaultERPMaster)Master).ShowPopUp(
                        "Erro",
                        String.Format("Houve um problema ao tentar excluir a formação acadêmica. Detalhes: {0}", ex.Message),
                        4);  
            }
        }

        protected void btSalvar_Click(object sender, EventArgs e)
        {
            bool isValid = Validacoes();
            if (!isValid)
                return;

            try
            {
                BLL.FormacaoAcademica.entFormacoes form =
                new BLL.FormacaoAcademica.entFormacoes();

                BLL.FormacaoAcademica fac = new BLL.FormacaoAcademica();

                form.IdFormacao = txtCod.Text;
                form.Formacao = txtFormacao.Text;

                if (Classes.Tools.PegarQueryString("ID") != null)
                {
                    //Atualiza Registro Existente
                    fac.AtualizaFormacaoAcademica(form);

                    ((DefaultERPMaster)Master).ShowPopUp(
                        "Formação Atualizada",
                        "Formação Acadêmica atualizada com sucesso!",
                        3);                    
                }
                else
                {
                    //Insere novo registro
                    fac.InsereFormacaoAcademica(form);

                    Response.Redirect(String.Format("004-FormacoesAcademicas-Detalhes.aspx?ID={0}&PM={1}",
                        Classes.Tools.Encript(form.IdFormacao),
                        Classes.Tools.Encript("Insert")));
                }
            }
            catch (Exception ex)
            {
                ((DefaultERPMaster)Master).ShowPopUp(
                        "Erro ao salvar Formação",
                        String.Format("Houve um problema ao salvar os dados da Formação Acadêmica. Detalhes: {0}", ex.Message ),
                        4);
            }            
        }

        private bool Validacoes()
        {
            StringBuilder sbErros = new StringBuilder(); ;

            if (txtFormacao.Text == string.Empty)
                sbErros.AppendLine("Informe a descrição completa da Formação Acadêmica.<br />");

            if (sbErros.ToString() != string.Empty)
            {
                ((DefaultERPMaster)Master).ShowPopUp("Erro ao salvar Formação", sbErros.ToString(), 4);
                return false;
            }
            return true;
        }
    }
}